home *** CD-ROM | disk | FTP | other *** search
- #
- Last Supper hall model - by Steve Woodman
-
- A 3D model of a rectory in Milan upon the walls of which
- Leonardo da' Vinci painted his famous "Last Supper" picture.
- This file is a CSG reconstruction of that hall, designed for
- interpretation by the Flexiparse text parser (thanks to Mac)
- and for rendering on the Genesis solid modelling system (by
- Spike)
-
- © Model data is copyright IBM UK scientific centre, Winchester
-
- #
-
- cyl1=(cylinder(225) int plane(0,0,-1) int plane(0,0,1) at(0,0,950)
- union empty);
- cyl2=((cylinder(225) int plane(0,0,-1) int plane(0,0,1) at(0,0,247))
- yrot(90)
- union empty);
- block1=(plane(-1,0,0) int
- plane(0,-1,0) int
- plane(0,0,-1) int
- plane(1,0,0) at(246,0,0) int
- plane(0,1,0) at(0,275,0) int
- plane(0,0,1) at(0,0,700)
- union empty);
- block2=(plane(-1,0,0) int
- plane(0,-1,0) int
- plane(0,0,-1) int
- plane(1,0,0) at(246,0,0) int
- plane(0,1,0) at(0,238,0) int
- plane(0,0,1) at(0,0,950)
- union empty);
- cyl3=(cylinder(179) int plane(0,0,-1) int plane(0,0,1) at(0,0,936)
- union empty);
- cyl4=(cylinder(69) int plane(0,0,-1) int plane(0,0,1) at(0,0,936)
- union empty);
- block3=(plane(-1,0,0) int
- plane(0,-1,0) int
- plane(0,0,-1) int
- plane(1,0,0) at(60,0,0) int
- plane(0,1,0) at(0,30,0) int
- plane(0,0,1) at(0,0,936)
- union empty);
- cyl5=((cylinder(179) int plane(0,0,-1) int plane(0,0,1) at(0,0,234))
- yrot(-90)
- union empty);
- cyl6=((cylinder(69) int plane(0,0,-1) int plane(0,0,1) at(0,0,234))
- yrot(-90)
- union empty);
- block4=(plane(-1,0,0) int
- plane(0,-1,0) int
- plane(0,0,-1) int
- plane(1,0,0) at(234,0,0) int
- plane(0,1,0) at(0,30,0) int
- plane(0,0,1) at(0,0,60)
- union empty);
- block5=(plane(-1,0,0) int
- plane(0,-1,0) int
- plane(0,0,-1) int
- plane(1,0,0) at(234,0,0) int
- plane(0,1,0) at(0,80,0) int
- plane(0,0,1) at(0,0,702)
- union empty);
- block6=(plane(-1,0,0) int
- plane(0,-1,0) int
- plane(0,0,-1) int
- plane(1,0,0) at(234,0,0) int
- plane(0,1,0) at(0,192,0) int
- plane(0,0,1) at(0,0,936)
- union empty);
-
- roof=cyl1 at(123,50,0) int
- (
- cyl2 at(0,50,125) union
- cyl2 at(0,50,825) union
- block1 at(0,0,125)
- ) int
- plane(0,-1,0) at(0,238,0);
-
- outside=(roof) union block2;
-
- xystrip=(
- cyl3 at(123,93,7) int
- plane(0,-1,0) at(0,254,0)
- ) union
- (
- (
- cyl4 at(75,192,7) union
- cyl4 at(171,192,7)
- ) int
- plane(0,-1,0) at(0,192,0)
- ) union
- block3 at(93,233,7);
-
- xcyl=cyl5 int
- plane(0,-1,0) at(0,161,0);
-
- zfend=(xcyl) union
- (
- cyl6 at(0,99,-48) int
- plane(0,-1,0) at(0,99,0)
- ) union
- block4 at(0,140,-30) union empty;
-
- zbend=(xcyl) union
- (
- cyl6 at(0,99,48) int
- plane(0,-1,0) at(0,99,0)
- ) union
- block4 at(0,140,-30) union empty;
-
- zystrip=(zfend) at(6,93,124) union
- (zbend) at(6,93,826) union
- block5 at(6,192,124);
-
- inside=(zystrip) int
- (xystrip) union
- block6 at(6,0.1,7);
-
- medmarch=ellipsoid(148.0610,76.6933,76.6933) union empty;
-
- largarch=ellipsoid(144.5829,80,80) union empty;
-
- smalarch=ellipsoid(135.1949,64.8635,64.8635) union empty;
-
- lwindow=plane(-4,6,0) at(6.001,213,0) int
- plane(-8,-6,0) at(6.001,125,0) int
- plane(-4,0,6) at(6.001,0,21) int
- plane(-4,0,-6) at(6.001,0,-21) int
- plane(1,0,0) at(6.001,0,0) union empty;
-
- rwindow=plane(4,6,0) at(239.999,213,0) int
- plane(8,-6,0) at(239.999,125,0) int
- plane(4,0,6) at(239.999,0,21) int
- plane(4,0,-6) at(239.999,0,-21) int
- plane(-1,0,0) at(239.999,0,0) union empty;
-
- hall=(
- (outside) diff
- (inside) diff
- (
- (
- (
- (smalarch) at(123,192,39.5) union
- (largarch) at(123,192,125) union
- (medmarch) at(123,192,225) union
- (medmarch) at(123,192,325) union
- (medmarch) at(123,192,425) union
- (medmarch) at(123,192,525) union
- (medmarch) at(123,192,625) union
- (medmarch) at(123,192,725) union
- (largarch) at(123,192,825) union
- (smalarch) at(123,192,910.5)
- ) int
- (zystrip)
- ) union
- (
- (
- (smalarch) yrot(90) at(207.5,192,125) union
- (largarch) yrot(90) at(123,192,125) union
- (smalarch) yrot(90) at(38.5,192,125) union
-
- (smalarch) yrot(90) at(207.5,192,825) union
- (largarch) yrot(90) at(123,192,825) union
- (largarch) yrot(90) at(38.5,192,825)
- ) int
- (xystrip)
- )
- ) diff
- (lwindow) at(0,0,125) diff
- (lwindow) at(0,0,225) diff
- (lwindow) at(0,0,325) diff
- (lwindow) at(0,0,525) diff
- (lwindow) at(0,0,725) diff
- (lwindow) at(0,0,825) diff
- (rwindow) at(0,0,125) diff
- (rwindow) at(0,0,225) diff
- (rwindow) at(0,0,325) diff
- (rwindow) at(0,0,525) diff
- (rwindow) at(0,0,725) diff
- (rwindow) at(0,0,825)
- ) union empty;
-
- # Seen from outside #
- #
- draw (hall) at(-123,-60,-500) scale(0.1)
- xrot(-20) yrot(-30) at(128,128,128);
- #
- # Seen from inside #
- draw (hall) at(-123,-60,-20);
- .
-